1748D - ConstructOR - CodeForces Solution


bitmasks chinese remainder theorem combinatorics constructive algorithms math number theory *2100

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
using namespace std;
long long a, b, d, k, x;
int T;
int main() {
	for(scanf("%d", &T); T --; ) {
		k = 1, x = 0;
		scanf("%lld%lld%lld", &a, &b, &d);
		int f = 0;		
		for(; d % 2 == 0; a >>= 1, b >>= 1, d >>= 1, k <<= 1) {
			if((a & 1) || (b & 1)) {
				f = 1;
				break;
			}
		}
		if(f) {
			puts("-1");
			continue;
		}
		for(int i = 0; i < 30; ++ i)
			if(!(x >> i & 1))
				x += (1ll << i) * d;
		printf("%lld\n",x * k);
	}
}


Comments

Submit
0 Comments
More Questions

1006A - Adjacent Replacements
1195C - Basketball Exercise
1206A - Choose Two Numbers
1438B - Valerii Against Everyone
822A - I'm bored with life
9A - Die Roll
1430B - Barrels
279B - Books
1374B - Multiply by 2 divide by 6
1093B - Letters Rearranging
1213C - Book Reading
1468C - Berpizza
1546B - AquaMoon and Stolen String
1353C - Board Moves
902A - Visiting a Friend
299B - Ksusha the Squirrel
1647D - Madoka and the Best School in Russia
1208A - XORinacci
1539B - Love Song
22B - Bargaining Table
1490B - Balanced Remainders
264A - Escape from Stones
1506A - Strange Table
456A - Laptops
855B - Marvolo Gaunt's Ring
1454A - Special Permutation
1359A - Berland Poker
459A - Pashmak and Garden
1327B - Princesses and Princes
1450F - The Struggling Contestant